package com.xbongbong.saas.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;
import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

/**
 * 操作日志表单字段枚举，用于操作日志日志导出
 * @author 杨磊
 * @since v1.0
 */
@Getter
public enum LoginLogFormAttrEnum {
	/**
	 * 操作人员
	 */
	LOGIN_USER(1, "enum.name.login_user", "userName"),
	/**
     * 操作时间
	 */
	OPERATE_TIME(2, "enum.name.login_operate_time", "addTime"),
	/**
     * ip地址
	 */
	IP_ADDRESS(3, "enum.name.login_ip_address", "ip"),
	/**
	 * 登录设备
	 */
	LOGIN_DEVICE(4, "enum.name.login_device", "platform");

	/** 枚举值 -- 操作类型标识*/
	private final int	 code;

	/** 枚举信息--操作名称*/
	private final String name;

	/** 枚举描述 --角色使用时状态*/
	private final String alias;

	/**
	 * 构造一个<code>OperateTypeEnum</code>枚举对象
	 *
	 * @param code 操作码
	 * @param name 操作名称
	 * @param alias 操作别名
	 */
	LoginLogFormAttrEnum(int code, String name, String alias) {
		this.code = code;
		this.name = name;
		this.alias = alias;
	}

	
	/**
	 * 获取全部枚举值
	 * 
	 * @return List<String>
	 */
	public static List<String> getAllEnumName() {
		List<String> list = new ArrayList<>();
		for (LoginLogFormAttrEnum cache : values()) {
			list.add(cache.getName());
		}
		return list;
	}

	public static List<String> getAllEnumAlias() {
		List<String> list = new ArrayList<>();
		for (LoginLogFormAttrEnum cache : values()) {
			list.add(cache.getAlias());
		}
		return list;
	}


	public String getName() {
		return I18nMessageUtil.getMessage(name);
	}
}
